package com.sun.common.core.excel.model;

import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.regex.Pattern;

/**
 * The type Default const.
 *
 * @author : Milo
 */
@SuppressWarnings(SuppressWarningConstant.UNUSED)
public class BasicConstant {
    /**
     * 分页起始
     */
    public static final long PAGE_NO = 1;
    /**
     * 分页 size
     */
    public static final long PAGE_SIZE = 20;

    /**
     * The constant PAGE_MAX_SIZE.
     */
    public static final long PAGE_MIN_SIZE = 1;

    /**
     * The constant PAGE_MAX_SIZE.
     */
    public static final long PAGE_MAX_SIZE = 1000;

    /**
     * The constant BATCH_EXECUTOR_SIZE.
     */
    public static final long BATCH_EXECUTOR_SIZE = 1000L;
    /**
     * The constant BATCH_EXECUTOR_SIZE.
     */
    public static final int BATCH_EXECUTOR_SIZE_INT = 1000;
    /**
     * 数字 0
     */
    public static final int NUM_ZERO = 0;
    /**
     * 数字 1
     */
    public static final int NUM_ONE = 1;
    /**
     * string 空格
     */
    public static final String STR_SPACE = " ";

    /**
     * 逗号
     */
    public static final String COMMA_SEPARATOR = ",";
    /**
     * token 分隔符 逗号 句号
     */
    public static final String PERIOD_SYMBOL = ".";
    /**
     * 冒号
     */
    public static final String COLON_SYMBOL = ":";
    /**
     * *
     */
    public static final String ASTERISK_SYMBOL = "*";
    /**
     * The constant QUESTION_SYMBOL.
     */
    public static final String QUESTION_SYMBOL = "?";
    /**
     * The constant AND_SYMBOL.
     */
    public static final String AND_SYMBOL = "&";
    /**
     * The constant EQUAL_SYMBOL.
     */
    public static final String EQUAL_SYMBOL = "=";
    /**
     * URL前缀
     */
    public static final String PATH_PREFIX = "/";
    /**
     * The constant UNDERSCORE.
     */
    public static final String UNDERSCORE = "_";
    /**
     * The constant SUBTRACTION_SYMBOL.
     */
    public static final String SUBTRACTION_SYMBOL = "-";
    /**
     * The constant REST_ANT_SEPARATOR.
     */
    public static final String REST_ANT_SEPARATOR = ":";
    /**
     * The constant OR.
     */
    public static final String OR = "|";
    /**
     * The constant EMPTY.
     */
    public static final String JSON_EMPTY = "{}";
    /**
     * The constant LOCAL_HOST.
     */
    public static final String LOCAL_HOST = "localhost";

    /**
     * 图片BASE64 前缀
     */
    public static final String BASE_64_IMAGE_HEADER = "data:image/png;base64,";

    /**
     * EXCEL 单个shell最大行数
     */
    public static final int EXCEL_MAX_ROW = 1048575;
    /**
     * 默认I18N地址
     */
    public static final String DEFAULT_I18N_MESSAGE_BASENAME = "/i18n/message";
    /**
     * 远程API接口前缀
     */
    public static final String REMOTE_API_PREFIX = "/remote";
    /**
     * 远程API接口前缀正则
     */
    public static final Pattern REMOTE_API_PREFIX_PATTERN = Pattern.compile(".*" + REMOTE_API_PREFIX + ".*");
    /**
     * token请求头名称
     */
    public static final String TOKEN_HEADER_NAME = "Authorization";
    /**
     * token value 前缀
     */
    public static final String TOKEN_VALUE_PREFIX = "Bearer";
    /**
     * 用户名称Header名称
     */
    public static final String CURRENT_USER_KEY = "Current-User";
    /**
     * The constant REFRESH_TOKEN_KEY.
     */
    public static final String REFRESH_TOKEN_KEY = "Refresh-Token";
    /**
     * 请求头角色
     */
    public static final String CURRENT_AUTHORITIES = "Current-Authorities";

    /**
     * The constant ASIA_SHANGHAI_ZONE_ID.
     */
    public static final ZoneId ASIA_SHANGHAI_ZONE_ID = ZoneId.of("GMT+8");
    /**
     * The constant ASIA_SHANGHAI_ZONE_OFFSET.
     */
    public static final ZoneOffset ASIA_SHANGHAI_ZONE_OFFSET = ZoneOffset.of("+08:00");

    /**
     * The constant HTTP_PREFIX.
     */
    @SuppressWarnings(SuppressWarningConstant.ALL)
    public static final String HTTP_PREFIX = "http://";
    /**
     * The constant HTTPS_PREFIX.
     */
    public static final String HTTPS_PREFIX = "https://";

    private BasicConstant() {
    }
}
